Documentation ¶
Index ¶
- Variables
- func GetOrRegisterCounter(nameFormat string, nameArgs ...interface{}) metrics.Counter
- func GetOrRegisterGauge(nameFormat string, nameArgs ...interface{}) metrics.Gauge
- func GetOrRegisterGaugeFloat64(nameFormat string, nameArgs ...interface{}) metrics.GaugeFloat64
- func GetOrRegisterHistogram(nameFormat string, nameArgs ...interface{}) metrics.Histogram
- func GetOrRegisterMeter(nameFormat string, nameArgs ...interface{}) metrics.Meter
- func GetOrRegisterTimer(nameFormat string, nameArgs ...interface{}) metrics.Timer
- func Init()
- func NewHistogram() metrics.Histogram
- type InputBlockMetric
- type InputEpochMetric
- type Metrics
- type NodeManagerMetrics
- type Percentage
- func GetOrRegisterPercentage(name string, args ...interface{}) Percentage
- func GetOrRegisterTimeWindowPercentage(slotInterval time.Duration, numSlots int, name string, args ...interface{}) Percentage
- func GetOrRegisterTimeWindowPercentageDefault(name string, args ...interface{}) Percentage
- func NewPercentage() Percentage
- func NewTimeWindowPercentage(slotInterval time.Duration, numSlots int) Percentage
- type PubSubMetrics
- type RpcMetrics
- func (*RpcMetrics) BatchLatency() metrics.Histogram
- func (*RpcMetrics) BatchSize() metrics.Histogram
- func (*RpcMetrics) FullnodeErrorRate(node ...string) Percentage
- func (*RpcMetrics) FullnodeNonRpcErrorRate(node ...string) Percentage
- func (*RpcMetrics) FullnodeQps(space, method string, err error) metrics.Timer
- func (*RpcMetrics) InputBlock(method, block string) Percentage
- func (*RpcMetrics) InputBlockGap(method string) metrics.Histogram
- func (*RpcMetrics) InputEpoch(method, epoch string) Percentage
- func (*RpcMetrics) InputEpochGap(method string) metrics.Histogram
- func (*RpcMetrics) Percentage(method, name string) Percentage
- func (*RpcMetrics) StoreHit(method, storeName string) Percentage
- func (*RpcMetrics) UpdateDuration(method string, err error, start time.Time)
- type StoreMetrics
- type SyncMetrics
- type TimerUpdater
Constants ¶
This section is empty.
Variables ¶
var InfuraRegistry = metrics.DefaultRegistry
Note, must use metrics.DefaultRegistry from geth, since go-rpc-provider depends on it for rpc metrics by default. When RPC middleware supported at server side, we can use a custom metrics registry.
Functions ¶
func GetOrRegisterCounter ¶
func GetOrRegisterGauge ¶
func GetOrRegisterGaugeFloat64 ¶
func GetOrRegisterGaugeFloat64(nameFormat string, nameArgs ...interface{}) metrics.GaugeFloat64
func GetOrRegisterHistogram ¶
func GetOrRegisterMeter ¶
func GetOrRegisterTimer ¶
func Init ¶
func Init()
This package should be imported before any metric (e.g. timer, histogram) created. Because, `metrics.Enabled` in go-ethereum is `false` by default, which leads to noop metric created for static variables in any package.
In addition, this package should be imported after the initialization of viper and logrus.
func NewHistogram ¶
Types ¶
type InputBlockMetric ¶
type InputBlockMetric struct{}
InputBlockMetric is used to add metrics for input block parameter.
func (*InputBlockMetric) Update1 ¶
func (metric *InputBlockMetric) Update1(blockNum *types.BlockNumber, method string, eth *client.RpcEthClient)
func (*InputBlockMetric) Update2 ¶
func (metric *InputBlockMetric) Update2(blockNumOrHash *types.BlockNumberOrHash, method string, eth *client.RpcEthClient)
type InputEpochMetric ¶
type InputEpochMetric struct{}
InputEpochMetric is used to add metrics for input epoch parameter.
func (*InputEpochMetric) Update ¶
func (metric *InputEpochMetric) Update(epoch *types.Epoch, method string, cfx sdk.ClientOperator)
Update marks the percentage for different epochs. If epoch number specified, add statistic for epoch gap against latest mined.
type Metrics ¶
type Metrics struct { RPC RpcMetrics PubSub PubSubMetrics Sync SyncMetrics Store StoreMetrics Nodes NodeManagerMetrics }
var Registry Metrics
type NodeManagerMetrics ¶
type NodeManagerMetrics struct{}
Node manager metrics
func (*NodeManagerMetrics) NodeAvailability ¶
func (*NodeManagerMetrics) NodeAvailability(space, group, node string) string
func (*NodeManagerMetrics) NodeLatency ¶
func (*NodeManagerMetrics) NodeLatency(space, group, node string) string
type Percentage ¶
Percentage implements the GaugeFloat64 interface for percentage statistic.
func GetOrRegisterPercentage ¶
func GetOrRegisterPercentage(name string, args ...interface{}) Percentage
GetOrRegisterPercentage returns an existing Percentage or constructs and registers a new standard Percentage.
func GetOrRegisterTimeWindowPercentage ¶
func GetOrRegisterTimeWindowPercentage( slotInterval time.Duration, numSlots int, name string, args ...interface{}, ) Percentage
GetOrRegisterTimeWindowPercentage returns an existing Percentage or constructs and registers a new time window Percentage.
func GetOrRegisterTimeWindowPercentageDefault ¶
func GetOrRegisterTimeWindowPercentageDefault(name string, args ...interface{}) Percentage
GetOrRegisterTimeWindowPercentageDefault returns an existing Percentage or constructs and registers a new time window Percentage.
func NewPercentage ¶
func NewPercentage() Percentage
NewPercentage constructs a new standard percentage metric.
func NewTimeWindowPercentage ¶
func NewTimeWindowPercentage(slotInterval time.Duration, numSlots int) Percentage
NewTimeWindowPercentage constructs a new time window Percentage.
type PubSubMetrics ¶
type PubSubMetrics struct{}
PubSub metrics
func (*PubSubMetrics) InputLogFilter ¶
func (*PubSubMetrics) InputLogFilter(space string) Percentage
type RpcMetrics ¶
type RpcMetrics struct{}
RPC metrics
func (*RpcMetrics) BatchLatency ¶
func (*RpcMetrics) BatchLatency() metrics.Histogram
func (*RpcMetrics) BatchSize ¶
func (*RpcMetrics) BatchSize() metrics.Histogram
func (*RpcMetrics) FullnodeErrorRate ¶
func (*RpcMetrics) FullnodeErrorRate(node ...string) Percentage
func (*RpcMetrics) FullnodeNonRpcErrorRate ¶
func (*RpcMetrics) FullnodeNonRpcErrorRate(node ...string) Percentage
func (*RpcMetrics) FullnodeQps ¶
func (*RpcMetrics) FullnodeQps(space, method string, err error) metrics.Timer
func (*RpcMetrics) InputBlock ¶
func (*RpcMetrics) InputBlock(method, block string) Percentage
func (*RpcMetrics) InputBlockGap ¶
func (*RpcMetrics) InputBlockGap(method string) metrics.Histogram
func (*RpcMetrics) InputEpoch ¶
func (*RpcMetrics) InputEpoch(method, epoch string) Percentage
func (*RpcMetrics) InputEpochGap ¶
func (*RpcMetrics) InputEpochGap(method string) metrics.Histogram
func (*RpcMetrics) Percentage ¶
func (*RpcMetrics) Percentage(method, name string) Percentage
func (*RpcMetrics) StoreHit ¶
func (*RpcMetrics) StoreHit(method, storeName string) Percentage
func (*RpcMetrics) UpdateDuration ¶
func (*RpcMetrics) UpdateDuration(method string, err error, start time.Time)
type StoreMetrics ¶
type StoreMetrics struct{}
Store metrics
func (*StoreMetrics) GetLogs ¶
func (*StoreMetrics) GetLogs() TimerUpdater
func (*StoreMetrics) Pop ¶
func (*StoreMetrics) Pop(storeName string) TimerUpdater
func (*StoreMetrics) Push ¶
func (*StoreMetrics) Push(storeName string) TimerUpdater
type SyncMetrics ¶
type SyncMetrics struct{}
Sync service metrics
func (*SyncMetrics) QueryEpochData ¶
func (*SyncMetrics) QueryEpochData(space string) TimerUpdater
func (*SyncMetrics) QueryEpochDataAvailability ¶
func (*SyncMetrics) QueryEpochDataAvailability(space string) Percentage
func (*SyncMetrics) SyncOnceQps ¶
func (*SyncMetrics) SyncOnceQps(space, storeName string, err error) metrics.Timer
func (*SyncMetrics) SyncOnceSize ¶
func (*SyncMetrics) SyncOnceSize(space, storeName string) metrics.Histogram
type TimerUpdater ¶
type TimerUpdater struct {
// contains filtered or unexported fields
}
TimerUpdater is used to update timer metric with native defer syntax.
func NewTimerUpdater ¶
func NewTimerUpdater(timer metrics.Timer) TimerUpdater
NewTimerUpdater creates an instance to update timer metric.
func NewTimerUpdaterByName ¶
func NewTimerUpdaterByName(name string) TimerUpdater
NewTimerUpdaterByName creates an instance to update timer metric of specified name.
func (*TimerUpdater) Update ¶
func (updater *TimerUpdater) Update()
Update updates the underlying timer metric.
func (*TimerUpdater) UpdateDuration ¶
func (updater *TimerUpdater) UpdateDuration(duration time.Duration)
Update updates the underlying timer metric with duration.