Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BucketConfig ¶
type BucketConfig struct {
Distribution BucketDistribution `mapstructure:"distribution"`
MaxLatency time.Duration `mapstructure:"max-latency"`
BucketCount int `mapstructure:"bucket-count"`
Values []float64 `mapstructure:"values"`
}
BucketConfig describes the latency bucket distribution.
func (*BucketConfig) Buckets ¶
func (c *BucketConfig) Buckets() []float64
Buckets returns a list of buckets for latency monitoring.
type BucketDistribution ¶
type BucketDistribution string
BucketDistribution can be empty, uniform, or fixed.
const ( BucketEmpty BucketDistribution = "empty" BucketUniform BucketDistribution = "uniform" BucketFixed BucketDistribution = "fixed" )
Sample and bucket constants.
type Config ¶
type Config struct {
monitoring.Config `mapstructure:",squash" yaml:",inline"`
Latency LatencyConfig `mapstructure:"latency" yaml:"latency"`
}
Config describes the load generator metrics. It adds latency tracker to the common metrics configurations.
type KeyTracingSampler ¶
KeyTracingSampler returns true to sample a given key.
type LatencyConfig ¶
type LatencyConfig struct {
SamplerConfig SamplerConfig `mapstructure:"sampler"`
BucketConfig BucketConfig `mapstructure:"buckets"`
}
LatencyConfig describes the latency monitoring parameters.
type MetricState ¶
type MetricState struct {
BlocksSent uint64
BlocksReceived uint64
TransactionsSent uint64
TransactionsReceived uint64
TransactionsCommitted uint64
TransactionsAborted uint64
}
MetricState is a collection of the current values of the metrics.
type NumberTracingSampler ¶
NumberTracingSampler returns true to sample a given number.
type PerfMetrics ¶
type PerfMetrics struct {
*monitoring.Provider
// contains filtered or unexported fields
}
PerfMetrics is a struct that contains the metrics for the block generator.
func NewLoadgenServiceMetrics ¶
func NewLoadgenServiceMetrics(c *Config) *PerfMetrics
NewLoadgenServiceMetrics creates a new PerfMetrics instance.
func (*PerfMetrics) GetState ¶
func (c *PerfMetrics) GetState() MetricState
GetState returns the number of committed transactions.
func (*PerfMetrics) OnReceiveBatch ¶
func (c *PerfMetrics) OnReceiveBatch(batch []TxStatus)
OnReceiveBatch increments the transaction received total and calls the latency tracker.
func (*PerfMetrics) OnSendBatch ¶
func (c *PerfMetrics) OnSendBatch(txIDs []string)
OnSendBatch is a function that increments the block sent total and calls the latency tracker.
func (*PerfMetrics) OnSendTransaction ¶
func (c *PerfMetrics) OnSendTransaction(txID string)
OnSendTransaction is a function that increments the transaction sent total and calls the latency tracker.
type SamplerConfig ¶
type SamplerConfig struct {
// Prefix checks for TXs that have the given prefix.
Prefix string `mapstructure:"prefix" json:"prefix,omitempty"`
// Portion uses the simple and efficient hash of the key to sample the required portion of TXs.
Portion float64 `mapstructure:"portion" json:"portion,omitempty"`
}
SamplerConfig describes the latency sampling parameters.
func (*SamplerConfig) TxSampler ¶
func (c *SamplerConfig) TxSampler() KeyTracingSampler
TxSampler returns a KeyTracingSampler for latency monitoring.
type TraceSamplerType ¶
type TraceSamplerType string
TraceSamplerType can be always, never, prefix, hash, or timer.
type TxStatus ¶
type TxStatus struct {
TxID string
Status protoblocktx.Status
}
TxStatus is used to report a batch item.