Documentation ¶
Overview ¶
Package metrics is a gateway for Prometheus monitoring system, it based on Prometheus golang client. Package contains metrics collectors descriptions of entire project. Component starts http server on http://0.0.0.0:8080/metrics by default(can be changed in configuration)
Example:
// starts metrics server cfg := configuration.NewMetrics() m, _ := NewMetrics(cfg) m.Start(nil) // manipulate with network metrics NetworkMessageSentTotal.Inc() NetworkPacketSentTotal.WithLabelValues("ping").Add(55)
Index ¶
Constants ¶
This section is empty.
Variables ¶
var APIContractExecutionTime = prometheus.NewSummaryVec(prometheus.SummaryOpts{ Name: "contract_execution_time", Help: "Time spent on execution contract, measured from API", Namespace: insolarNamespace, Subsystem: "API", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"method", "success"})
var ErrBind = errors.New("Failed to bind")
ErrBind special case for Start method. We can use it for easier check in metrics creation code.
var GopluginContractExecutionTime = prometheus.NewSummaryVec(prometheus.SummaryOpts{ Name: "contract_execution_time", Help: "Time spent on execution contract, measured in goplugin", Namespace: insolarNamespace, Subsystem: "goplugin", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"method"})
var InsgorundCallsTotal = prometheus.NewCounter(prometheus.CounterOpts{
Name: "call_contract_method_total",
Help: "Total number of calls contracts methods",
Namespace: insgorundNamespace,
})
var InsgorundContractExecutionTime = prometheus.NewSummaryVec(prometheus.SummaryOpts{ Name: "contract_execution_time", Help: "Time spent on execution contract", Namespace: insgorundNamespace, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"method"})
var LocallyDeliveredParcelsTotal = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: insolarNamespace, Subsystem: "messagebus", Name: "locally_delivered_parcels_total", Help: "Total number of parcels delivered to the same machine", }, []string{"messageType"}, )
var NetworkComplete = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "complete_network_state",
Help: "Timestamp when the node reaches complete network state",
Namespace: insolarNamespace,
Subsystem: "network",
})
NetworkComplete is metric that is committed when the node reaches complete network state
var NetworkConnections = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "connections",
Help: "Current network transport connections count",
Namespace: insolarNamespace,
Subsystem: "network",
})
NetworkConnections is current network transport connections count metric
var NetworkFutures = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "futures", Help: "Current network transport futures count", Namespace: insolarNamespace, Subsystem: "network", }, []string{"packetType"})
NetworkFutures is current network transport futures count metric
var NetworkPacketReceivedTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "packet_received_total", Help: "Total number of received packets", Namespace: insolarNamespace, Subsystem: "network", }, []string{"packetType"})
NetworkPacketReceivedTotal is is total number of received packets metric
var NetworkPacketSentTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "packet_sent_total", Help: "Total number of sent packets", Namespace: insolarNamespace, Subsystem: "network", }, []string{"packetType"})
NetworkPacketSentTotal is total number of sent packets metric
var NetworkPacketTimeoutTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "packet_timeout_total", Help: "Total number of timed out packets", Namespace: insolarNamespace, Subsystem: "network", }, []string{"packetType"})
NetworkPacketTimeoutTotal is is total number of timed out packets metric
var NetworkParcelReceivedTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "parcel_received_total", Help: "Total number of received parcels", Namespace: insolarNamespace, Subsystem: "network", }, []string{"messageType"})
NetworkParcelReceivedTotal is total number of received messages metric
var NetworkParcelSentTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "parcel_sent_total", Help: "Total number of sent parcels", Namespace: insolarNamespace, Subsystem: "network", }, []string{"messageType"})
NetworkParcelSentTotal is total number of sent messages metric
var ParcelsReplySizeBytes = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: insolarNamespace, Subsystem: "messagebus", Name: "parcels_reply_size_bytes", Help: "Size of replies to parcels", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"messageType"}, )
var ParcelsSentSizeBytes = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: insolarNamespace, Subsystem: "messagebus", Name: "parcels_sent_size_bytes", Help: "Size of sent parcels", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"messageType"}, )
var ParcelsSentTotal = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: insolarNamespace, Subsystem: "messagebus", Name: "parcels_sent_total", Help: "Total number of parcels sent", }, []string{"messageType"}, )
var ParcelsTime = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: insolarNamespace, Subsystem: "messagebus", Name: "parcels_time", Help: "Time spent on sending parcels", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, }, []string{"messageType"}, )
Functions ¶
func GetInsgorundRegistry ¶ added in v0.7.5
func GetInsgorundRegistry() *prometheus.Registry
func GetInsolarRegistry ¶ added in v0.7.5
func GetInsolarRegistry() *prometheus.Registry
GetInsolarRegistry creates and registers Insolar global metrics
func IsAddrInUse ¶ added in v0.6.3
IsAddrInUse checks error text for well known phrase.
func IsServerClosed ¶ added in v0.6.3
IsServerClosed checks error text for well known phrase.
Types ¶
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics is a component which serve metrics data to Prometheus.
func NewMetrics ¶
func NewMetrics(ctx context.Context, cfg configuration.Metrics, registry *prometheus.Registry) (*Metrics, error)
NewMetrics creates new Metrics component.
func (*Metrics) AddrString ¶ added in v0.6.3
AddrString returns listener address.