diff --git a/plugins/prometheus/analysis_server.go b/plugins/prometheus/analysis_server.go deleted file mode 100644 index 7b1b4c03ead561149a146a3dee92ae4191b79990..0000000000000000000000000000000000000000 --- a/plugins/prometheus/analysis_server.go +++ /dev/null @@ -1 +0,0 @@ -package prometheus diff --git a/plugins/prometheus/autopeering.go b/plugins/prometheus/autopeering.go index 369a60e40af9961e4201af2190de40e9e8a7dfaf..e65b353444b09e254c0230269c4383a28c2d5392 100644 --- a/plugins/prometheus/autopeering.go +++ b/plugins/prometheus/autopeering.go @@ -14,7 +14,7 @@ var ( avgDistance prometheus.Gauge ) -func init() { +func registerAutopeeringMetrics() { neighborDropCount = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "neighbor_drop_count", Help: "Autopeering neighbor drop count.", diff --git a/plugins/prometheus/clients_info.go b/plugins/prometheus/clients_info.go new file mode 100644 index 0000000000000000000000000000000000000000..44cbc20566aeefe0547c1dc492bea2c5dd491582 --- /dev/null +++ b/plugins/prometheus/clients_info.go @@ -0,0 +1,33 @@ +package prometheus + +import ( + "github.com/prometheus/client_golang/prometheus" +) + +var ( + clientsInfo *prometheus.GaugeVec +) + +func registerClientsMetrics() { + clientsInfo = prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "clients_info", + Help: "Clients info.", + }, + []string{"info"}, + // []string{"OS", "ARCH", "NUM_CPU", "CPU_USAGE", "MEM_USAGE"}, + ) + + // registry.MustRegister(clientsInfo) + + // collectClientsInfo() + + // clientsInfo.WithLabelValues(banner.AppName, banner.AppVersion).Set(1) +} + +func collectClientsInfo() { + // for ID, info := range metrics.ClientsMetrics() { + // clientsInfo.WithLabelValues() + // } + +} diff --git a/plugins/prometheus/data.go b/plugins/prometheus/data.go index 15198f47f1145d9f764104ce5ef3aa3104d76842..0459b0f8d16edcd458f234277cae33e96d9e93f4 100644 --- a/plugins/prometheus/data.go +++ b/plugins/prometheus/data.go @@ -13,7 +13,7 @@ var ( dataSizes *prometheus.GaugeVec ) -func init() { +func registerDataMetrics() { dataSizes = prometheus.NewGaugeVec( prometheus.GaugeOpts{ Name: "iota_data_sizes_bytes", diff --git a/plugins/prometheus/fpc.go b/plugins/prometheus/fpc.go index 1df49dc6c31e437a04621a8bc73e05807ccfd71a..a8fbe667c011da1115e02c342fe3777d767ab1a5 100644 --- a/plugins/prometheus/fpc.go +++ b/plugins/prometheus/fpc.go @@ -6,17 +6,17 @@ import ( ) var ( - activeConflicts prometheus.Gauge + activeConflicts prometheus.Gauge finalizedConflicts prometheus.Gauge - failedConflicts prometheus.Gauge - avgRoundToFin prometheus.Gauge - queryRx prometheus.Gauge - queryOpRx prometheus.Gauge - queryReplyNotRx prometheus.Gauge - queryOpReplyNotRx prometheus.Gauge + failedConflicts prometheus.Gauge + avgRoundToFin prometheus.Gauge + queryRx prometheus.Gauge + queryOpRx prometheus.Gauge + queryReplyNotRx prometheus.Gauge + queryOpReplyNotRx prometheus.Gauge ) -func init() { +func registerFPCMetrics() { activeConflicts = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "fpc_active_conflicts", Help: "number of currently active conflicts", @@ -72,4 +72,3 @@ func collectFPCMetrics() { queryReplyNotRx.Set(float64(metrics.FPCQueryReplyErrors())) queryOpReplyNotRx.Set(float64(metrics.FPCOpinionQueryReplyErrors())) } - diff --git a/plugins/prometheus/info.go b/plugins/prometheus/info.go index 3a6ede2f12c2bbdcc583806268825c506c12506c..43b99e8dea80772e64f8bb7f94717ab03bbb90a7 100644 --- a/plugins/prometheus/info.go +++ b/plugins/prometheus/info.go @@ -11,7 +11,7 @@ var ( sync prometheus.Gauge ) -func init() { +func registerInfoMetrics() { infoApp = prometheus.NewGaugeVec( prometheus.GaugeOpts{ Name: "iota_info_app", @@ -26,6 +26,9 @@ func init() { Help: "Node sync status.", }) + registry.MustRegister(infoApp) + registry.MustRegister(sync) + addCollect(collectInfoMetrics) } diff --git a/plugins/prometheus/metrics.go b/plugins/prometheus/metrics.go new file mode 100644 index 0000000000000000000000000000000000000000..5aa8a7d1a5ec5f368ecad502392e2397cd61f922 --- /dev/null +++ b/plugins/prometheus/metrics.go @@ -0,0 +1,22 @@ +package prometheus + +import ( + "github.com/iotaledger/goshimmer/plugins/config" + "github.com/iotaledger/goshimmer/plugins/metrics" +) + +func init() { + if config.Node.GetBool(metrics.CfgMetricsLocal) { + registerAutopeeringMetrics() + registerDataMetrics() + registerFPCMetrics() + registerInfoMetrics() + registerNetworkMetrics() + registerProcessMetrics() + registerTangleMetrics() + } + + if config.Node.GetBool(metrics.CfgMetricsGlobal) { + registerClientsMetrics() + } +} diff --git a/plugins/prometheus/network.go b/plugins/prometheus/network.go index d5f95e2bc4e6386410bc7165a466ab4731d019ed..7e3e4d37b4fb18e7dc4695cfbba633dc26a3c68b 100644 --- a/plugins/prometheus/network.go +++ b/plugins/prometheus/network.go @@ -16,7 +16,7 @@ var ( autopeeringOutboundBytes prometheus.Gauge ) -func init() { +func registerNetworkMetrics() { fpcInboundBytes = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "fpc_inbound_bytes", Help: "FPC RX network traffic [bytes].", diff --git a/plugins/prometheus/process.go b/plugins/prometheus/process.go index c769ea517949f98d28d9c6be3ea377768e2fb82e..c38a433841f4a532a71adf6253df796875c26a2e 100644 --- a/plugins/prometheus/process.go +++ b/plugins/prometheus/process.go @@ -10,7 +10,7 @@ var ( memUsageBytes prometheus.Gauge ) -func init() { +func registerProcessMetrics() { cpuUsage = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "cpu_usage", Help: "CPU (System) usage.", diff --git a/plugins/prometheus/tangle.go b/plugins/prometheus/tangle.go index dba459efd47192259f0306bb35a19b86729b0ac5..1f28604f57d74ef06da1f7c07cdee564c960f269 100644 --- a/plugins/prometheus/tangle.go +++ b/plugins/prometheus/tangle.go @@ -7,17 +7,17 @@ import ( ) var ( - messagesPerSecond prometheus.Gauge + messagesPerSecond prometheus.Gauge messagePerSecondPerPayload *prometheus.GaugeVec - messageTips prometheus.Gauge - messageCount *prometheus.GaugeVec - messageTotalCount prometheus.Gauge + messageTips prometheus.Gauge + messageCount *prometheus.GaugeVec + messageTotalCount prometheus.Gauge transactionsPerSecond prometheus.Gauge - valueTips prometheus.Gauge + valueTips prometheus.Gauge ) -func init() { +func registerTangleMetrics() { messagesPerSecond = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "tangle_messages_per_second", Help: "Number of messages per second.",