metrics

package
v0.8.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2022 License: MIT Imports: 16 Imported by: 14

Documentation

Index

Constants

View Source
const (
	Namespace = "op_node"

	RPCServerSubsystem = "rpc_server"
	RPCClientSubsystem = "rpc_client"

	BatchMethod = "<batch>"
)

Variables

This section is empty.

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 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
	// contains filtered or unexported fields
}

func NewMetrics

func NewMetrics(procName string) *Metrics

func (*Metrics) CountSequencedTxs

func (m *Metrics) CountSequencedTxs(count int)

func (*Metrics) RecordDerivationError

func (m *Metrics) RecordDerivationError()

func (*Metrics) RecordInfo

func (m *Metrics) RecordInfo(version string)

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 (m *Metrics) RecordL1ReorgDepth(d uint64)

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

func (m *Metrics) RecordRPCClientRequest(method string) func(err error)

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

func (m *Metrics) RecordRPCClientResponse(method string, err error)

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

func (m *Metrics) RecordRPCServerRequest(method string) func()

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 (m *Metrics) RecordUnsafePayloadsBuffer(length uint64, memSize uint64, next eth.BlockID)

func (*Metrics) RecordUp

func (m *Metrics) RecordUp()

RecordUp sets the up metric to 1.

func (*Metrics) Serve

func (m *Metrics) Serve(ctx context.Context, hostname string, port int) error

Serve starts the metrics server on the given hostname and port. The server will be closed when the passed-in context is cancelled.

func (*Metrics) SetDerivationIdle

func (m *Metrics) SetDerivationIdle(status bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL