From d72ebb6a056c1db2f45e3af85d94c755afb05430 Mon Sep 17 00:00:00 2001 From: capossele <angelocapossele@gmail.com> Date: Thu, 18 Jun 2020 09:04:16 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/prometheus/analysis_server.go | 1 - plugins/prometheus/autopeering.go | 2 +- plugins/prometheus/clients_info.go | 33 +++++++++++++++++++++++++++ plugins/prometheus/data.go | 2 +- plugins/prometheus/fpc.go | 17 +++++++------- plugins/prometheus/info.go | 5 +++- plugins/prometheus/metrics.go | 22 ++++++++++++++++++ plugins/prometheus/network.go | 2 +- plugins/prometheus/process.go | 2 +- plugins/prometheus/tangle.go | 12 +++++----- 10 files changed, 77 insertions(+), 21 deletions(-) delete mode 100644 plugins/prometheus/analysis_server.go create mode 100644 plugins/prometheus/clients_info.go create mode 100644 plugins/prometheus/metrics.go diff --git a/plugins/prometheus/analysis_server.go b/plugins/prometheus/analysis_server.go deleted file mode 100644 index 7b1b4c03..00000000 --- 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 369a60e4..e65b3534 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 00000000..44cbc205 --- /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 15198f47..0459b0f8 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 1df49dc6..a8fbe667 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 3a6ede2f..43b99e8d 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 00000000..5aa8a7d1 --- /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 d5f95e2b..7e3e4d37 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 c769ea51..c38a4338 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 dba459ef..1f28604f 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.", -- GitLab