Merge pull request #3009 from nspcc-dev/new-version

network: add `neogo_version` metric, deprecate `serv_node_version`
This commit is contained in:
Roman Khimov 2023-05-11 14:38:35 +03:00 committed by GitHub
commit abf3ef5af7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 1 deletions

View file

@ -130,3 +130,12 @@ We check struct items count before convert LastGasPerVote to let RPC client be c
old versions. old versions.
Removal of this compatiblility code is scheduled for Sep-Oct 2023. Removal of this compatiblility code is scheduled for Sep-Oct 2023.
## `serv_node_version` Prometheus gauge metric
This metric is replaced by the new `neogo_version` and `server_id` Prometheus gauge
metrics with proper version formatting. `neogo_version` contains NeoGo version
hidden under `version` label and `server_id` contains network server ID hidden
under `server_id` label.
Removal of `serv_node_version` is scheduled for Sep-Oct 2023 (~0.105.0 release).

View file

@ -25,6 +25,7 @@ var (
}, },
) )
// Deprecated: please, use neogoVersion and serverID instead.
servAndNodeVersion = prometheus.NewGaugeVec( servAndNodeVersion = prometheus.NewGaugeVec(
prometheus.GaugeOpts{ prometheus.GaugeOpts{
Help: "Server and Node versions", Help: "Server and Node versions",
@ -34,6 +35,22 @@ var (
[]string{"description", "value"}, []string{"description", "value"},
) )
neogoVersion = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Help: "NeoGo version",
Name: "version",
Namespace: "neogo",
},
[]string{"version"})
serverID = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Help: "network server ID",
Name: "server_id",
Namespace: "neogo",
},
[]string{"server_id"})
poolCount = prometheus.NewGauge( poolCount = prometheus.NewGauge(
prometheus.GaugeOpts{ prometheus.GaugeOpts{
Help: "Number of available node addresses", Help: "Number of available node addresses",
@ -66,6 +83,8 @@ func init() {
estimatedNetworkSize, estimatedNetworkSize,
peersConnected, peersConnected,
servAndNodeVersion, servAndNodeVersion,
neogoVersion,
serverID,
poolCount, poolCount,
blockQueueLength, blockQueueLength,
notarypoolUnsortedTx, notarypoolUnsortedTx,
@ -102,10 +121,21 @@ func updatePoolCountMetric(pCount int) {
func updatePeersConnectedMetric(pConnected int) { func updatePeersConnectedMetric(pConnected int) {
peersConnected.Set(float64(pConnected)) peersConnected.Set(float64(pConnected))
} }
// Deprecated: please, use setNeoGoVersion and setSeverID instead.
func setServerAndNodeVersions(nodeVer string, serverID string) { func setServerAndNodeVersions(nodeVer string, serverID string) {
servAndNodeVersion.WithLabelValues("Node version: ", nodeVer).Add(0) servAndNodeVersion.WithLabelValues("Node version: ", nodeVer).Add(0)
servAndNodeVersion.WithLabelValues("Server id: ", serverID).Add(0) servAndNodeVersion.WithLabelValues("Server id: ", serverID).Add(0)
} }
func setNeoGoVersion(nodeVer string) {
neogoVersion.WithLabelValues(nodeVer).Add(1)
}
func setSeverID(id string) {
serverID.WithLabelValues(id).Add(1)
}
func addCmdTimeMetric(cmd CommandType, t time.Duration) { func addCmdTimeMetric(cmd CommandType, t time.Duration) {
// Shouldn't happen, message decoder checks the type, but better safe than sorry. // Shouldn't happen, message decoder checks the type, but better safe than sorry.
if p2pCmds[cmd] == nil { if p2pCmds[cmd] == nil {

View file

@ -285,6 +285,8 @@ func (s *Server) Start() {
go tr.Accept() go tr.Accept()
} }
setServerAndNodeVersions(s.UserAgent, strconv.FormatUint(uint64(s.id), 10)) setServerAndNodeVersions(s.UserAgent, strconv.FormatUint(uint64(s.id), 10))
setNeoGoVersion(config.Version)
setSeverID(strconv.FormatUint(uint64(s.id), 10))
s.run() s.run()
} }