Documentation
¶
Index ¶
- Constants
- Variables
- type CacheMetrics
- type EventMetrics
- type Metricer
- type Metrics
- func (m *Metrics) CountSequencedTxs(count int)
- func (m *Metrics) DecPeerCount()
- func (m *Metrics) DecStreamCount()
- func (m *Metrics) IncPeerCount()
- func (m *Metrics) IncStreamCount()
- func (m *Metrics) RecordBandwidth(ctx context.Context, bwc *libp2pmetrics.BandwidthCounter)
- func (m *Metrics) RecordDerivationError()
- func (m *Metrics) RecordGossipEvent(evType int32)
- func (m *Metrics) RecordInfo(version string)
- func (m *Metrics) RecordL1Ref(name string, ref eth.L1BlockRef)
- func (m *Metrics) RecordL1ReorgDepth(d uint64)
- func (m *Metrics) RecordL2Ref(name string, ref eth.L2BlockRef)
- func (m *Metrics) RecordPipelineReset()
- func (m *Metrics) RecordPublishingError()
- func (m *Metrics) RecordRPCClientRequest(method string) func(err error)
- func (m *Metrics) RecordRPCClientResponse(method string, err error)
- func (m *Metrics) RecordRPCServerRequest(method string) func()
- func (m *Metrics) RecordReceivedUnsafePayload(payload *eth.ExecutionPayload)
- func (m *Metrics) RecordSequencingError()
- func (m *Metrics) RecordUnsafePayloadsBuffer(length uint64, memSize uint64, next eth.BlockID)
- func (m *Metrics) RecordUp()
- func (m *Metrics) Serve(ctx context.Context, hostname string, port int) error
- func (m *Metrics) SetDerivationIdle(status bool)
Constants ¶
const ( Namespace = "op_node" RPCServerSubsystem = "rpc_server" RPCClientSubsystem = "rpc_client" BatchMethod = "<batch>" )
Variables ¶
var NoopMetrics = new(noopMetricer)
Functions ¶
This section is empty.
Types ¶
type CacheMetrics ¶
type CacheMetrics struct {
SizeVec *prometheus.GaugeVec
GetVec *prometheus.CounterVec
AddVec *prometheus.CounterVec
}
CacheMetrics implements the Metrics interface in the caching package, implementing reusable metrics for different caches.
func NewCacheMetrics ¶
func NewCacheMetrics(registry prometheus.Registerer, ns string, name string, displayName string) *CacheMetrics
func (*CacheMetrics) CacheAdd ¶
func (m *CacheMetrics) CacheAdd(typeLabel string, typeCacheSize int, evicted bool)
CacheAdd meters the addition of an item with a given type to the cache, metering the change of the cache size of that type, and indicating a corresponding eviction if any.
func (*CacheMetrics) CacheGet ¶
func (m *CacheMetrics) CacheGet(typeLabel string, hit bool)
CacheGet meters a lookup of an item with a given type to the cache and indicating if the lookup was a hit.
type EventMetrics ¶
type EventMetrics struct {
Total prometheus.Counter
LastTime prometheus.Gauge
}
func NewEventMetrics ¶
func NewEventMetrics(registry prometheus.Registerer, ns string, name string, displayName string) *EventMetrics
func (*EventMetrics) RecordEvent ¶
func (e *EventMetrics) RecordEvent()
type Metricer ¶
type Metricer interface {
RecordInfo(version string)
RecordUp()
RecordRPCServerRequest(method string) func()
RecordRPCClientRequest(method string) func(err error)
RecordRPCClientResponse(method string, err error)
SetDerivationIdle(status bool)
RecordPipelineReset()
RecordSequencingError()
RecordPublishingError()
RecordDerivationError()
RecordReceivedUnsafePayload(payload *eth.ExecutionPayload)
RecordL1Ref(name string, ref eth.L1BlockRef)
RecordL2Ref(name string, ref eth.L2BlockRef)
RecordUnsafePayloadsBuffer(length uint64, memSize uint64, next eth.BlockID)
CountSequencedTxs(count int)
RecordL1ReorgDepth(d uint64)
RecordGossipEvent(evType int32)
IncPeerCount()
DecPeerCount()
IncStreamCount()
DecStreamCount()
RecordBandwidth(ctx context.Context, bwc *libp2pmetrics.BandwidthCounter)
// contains filtered or unexported methods
}
type Metrics ¶
type Metrics struct {
Info *prometheus.GaugeVec
Up prometheus.Gauge
RPCServerRequestsTotal *prometheus.CounterVec
RPCServerRequestDurationSeconds *prometheus.HistogramVec
RPCClientRequestsTotal *prometheus.CounterVec
RPCClientRequestDurationSeconds *prometheus.HistogramVec
RPCClientResponsesTotal *prometheus.CounterVec
L1SourceCache *CacheMetrics
L2SourceCache *CacheMetrics
DerivationIdle prometheus.Gauge
PipelineResets *EventMetrics
UnsafePayloads *EventMetrics
DerivationErrors *EventMetrics
SequencingErrors *EventMetrics
PublishingErrors *EventMetrics
UnsafePayloadsBufferLen prometheus.Gauge
UnsafePayloadsBufferMemSize prometheus.Gauge
RefsNumber *prometheus.GaugeVec
RefsTime *prometheus.GaugeVec
RefsHash *prometheus.GaugeVec
RefsSeqNr *prometheus.GaugeVec
RefsLatency *prometheus.GaugeVec
// hash of the last seen block per name, so we don't reduce/increase latency on updates of the same data,
// and only count the first occurrence
LatencySeen map[string]common.Hash
L1ReorgDepth prometheus.Histogram
TransactionsSequencedTotal prometheus.Counter
// P2P Metrics
PeerCount prometheus.Gauge
StreamCount prometheus.Gauge
GossipEventsTotal *prometheus.CounterVec
BandwidthTotal *prometheus.GaugeVec
// contains filtered or unexported fields
}
func NewMetrics ¶
func (*Metrics) CountSequencedTxs ¶
func (*Metrics) DecPeerCount ¶
func (m *Metrics) DecPeerCount()
func (*Metrics) DecStreamCount ¶
func (m *Metrics) DecStreamCount()
func (*Metrics) IncPeerCount ¶
func (m *Metrics) IncPeerCount()
func (*Metrics) IncStreamCount ¶
func (m *Metrics) IncStreamCount()
func (*Metrics) RecordBandwidth ¶
func (m *Metrics) RecordBandwidth(ctx context.Context, bwc *libp2pmetrics.BandwidthCounter)
func (*Metrics) RecordDerivationError ¶
func (m *Metrics) RecordDerivationError()
func (*Metrics) RecordGossipEvent ¶
func (*Metrics) RecordInfo ¶
RecordInfo sets a pseudo-metric that contains versioning and config info for the opnode.
func (*Metrics) RecordL1Ref ¶
func (m *Metrics) RecordL1Ref(name string, ref eth.L1BlockRef)
func (*Metrics) RecordL1ReorgDepth ¶
func (*Metrics) RecordL2Ref ¶
func (m *Metrics) RecordL2Ref(name string, ref eth.L2BlockRef)
func (*Metrics) RecordPipelineReset ¶
func (m *Metrics) RecordPipelineReset()
func (*Metrics) RecordPublishingError ¶
func (m *Metrics) RecordPublishingError()
func (*Metrics) RecordRPCClientRequest ¶
RecordRPCClientRequest is a helper method to record an RPC client request. It bumps the requests metric, tracks the response duration, and records the response's error code.
func (*Metrics) RecordRPCClientResponse ¶
RecordRPCClientResponse records an RPC response. It will convert the passed-in error into something metrics friendly. Nil errors get converted into <nil>, RPC errors are converted into rpc_<error code>, HTTP errors are converted into http_<status code>, and everything else is converted into <unknown>.
func (*Metrics) RecordRPCServerRequest ¶
RecordRPCServerRequest is a helper method to record an incoming RPC call to the opnode's RPC server. It bumps the requests metric, and tracks how long it takes to serve a response.
func (*Metrics) RecordReceivedUnsafePayload ¶
func (m *Metrics) RecordReceivedUnsafePayload(payload *eth.ExecutionPayload)
func (*Metrics) RecordSequencingError ¶
func (m *Metrics) RecordSequencingError()
func (*Metrics) RecordUnsafePayloadsBuffer ¶
func (*Metrics) Serve ¶
Serve starts the metrics server on the given hostname and port. The server will be closed when the passed-in context is cancelled.