Skip to content

Commit 85d98bb

Browse files
author
Qi Xiao
committed
Refine metrics
1 parent 109d626 commit 85d98bb

6 files changed

Lines changed: 37 additions & 22 deletions

File tree

cmd/cql-minerd/disk_usage.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ import (
2424
"strconv"
2525
"strings"
2626

27+
mw "github.com/zserge/metric"
28+
2729
"github.com/CovenantSQL/CovenantSQL/conf"
2830
"github.com/CovenantSQL/CovenantSQL/utils/log"
2931
)
3032

3133
var (
32-
diskUsageMetric = expvar.NewInt("service:miner:disk:usage")
34+
diskUsageMetric = mw.NewGauge("5m1m")
3335
)
3436

3537
func collectDiskUsage() (err error) {
@@ -86,7 +88,11 @@ func collectDiskUsage() (err error) {
8688
return
8789
}
8890

89-
diskUsageMetric.Set(usedKiloBytes)
91+
diskUsageMetric.Add(float64(usedKiloBytes))
9092

9193
return
9294
}
95+
96+
func init() {
97+
expvar.Publish("service:miner:disk:usage", diskUsageMetric)
98+
}

cmd/cql-minerd/node.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ import (
3434
)
3535

3636
const (
37-
mwMinerAddr = "service:miner:addr"
38-
mwMinerNodeID = "service:miner:node"
39-
mwMinerWallet = "service:miner:wallet"
40-
mwMinerDiskRoot = "service:miner:disk:root"
37+
mwMinerAddr = "service:miner:addr"
38+
mwMinerExternalAddr = "service:miner:addr:external"
39+
mwMinerNodeID = "service:miner:node"
40+
mwMinerWallet = "service:miner:wallet"
41+
mwMinerDiskRoot = "service:miner:disk:root"
4142
)
4243

4344
func initNode() (server *mux.Server, direct *rpc.Server, err error) {
@@ -101,6 +102,7 @@ func createDirectServer(privateKeyPath string, masterKey []byte, listenAddr stri
101102
func initMetrics() {
102103
if conf.GConf != nil {
103104
expvar.NewString(mwMinerAddr).Set(conf.GConf.ListenAddr)
105+
expvar.NewString(mwMinerExternalAddr).Set(conf.GConf.ExternalListenAddr)
104106
expvar.NewString(mwMinerNodeID).Set(string(conf.GConf.ThisNodeID))
105107
expvar.NewString(mwMinerWallet).Set(conf.GConf.WalletAddress)
106108

conf/config.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,16 @@ type Config struct {
114114
StartupSyncHoles bool `yaml:"StartupSyncHoles,omitempty"`
115115
GenerateKeyPair bool `yaml:"-"`
116116
//TODO(auxten): set yaml key for config
117-
WorkingRoot string `yaml:"WorkingRoot"`
118-
PubKeyStoreFile string `yaml:"PubKeyStoreFile"`
119-
PrivateKeyFile string `yaml:"PrivateKeyFile"`
120-
WalletAddress string `yaml:"WalletAddress"`
121-
DHTFileName string `yaml:"DHTFileName"`
122-
ListenAddr string `yaml:"ListenAddr"`
123-
ListenDirectAddr string `yaml:"ListenDirectAddr",omitempty`
124-
ThisNodeID proto.NodeID `yaml:"ThisNodeID"`
125-
ValidDNSKeys map[string]string `yaml:"ValidDNSKeys"` // map[DNSKEY]domain
117+
WorkingRoot string `yaml:"WorkingRoot"`
118+
PubKeyStoreFile string `yaml:"PubKeyStoreFile"`
119+
PrivateKeyFile string `yaml:"PrivateKeyFile"`
120+
WalletAddress string `yaml:"WalletAddress"`
121+
DHTFileName string `yaml:"DHTFileName"`
122+
ListenAddr string `yaml:"ListenAddr"`
123+
ListenDirectAddr string `yaml:"ListenDirectAddr,omitempty"`
124+
ExternalListenAddr string `yaml:"-"` // for metric purpose
125+
ThisNodeID proto.NodeID `yaml:"ThisNodeID"`
126+
ValidDNSKeys map[string]string `yaml:"ValidDNSKeys"` // map[DNSKEY]domain
126127
// Check By BP DHT.Ping
127128
MinNodeIDDifficulty int `yaml:"MinNodeIDDifficulty"`
128129

@@ -217,6 +218,7 @@ func LoadConfig(configPath string) (config *Config, err error) {
217218
}
218219

219220
config.WalletAddress = walletHash.String()
221+
config.ExternalListenAddr = node.Addr
220222
}
221223
}
222224
}

proto/nodeinfo.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ type Node struct {
114114
ID NodeID `yaml:"ID"`
115115
Role ServerRole `yaml:"Role"`
116116
Addr string `yaml:"Addr"`
117-
DirectAddr string `yaml:"DirectAddr",omitempty`
117+
DirectAddr string `yaml:"DirectAddr,omitempty"`
118118
PublicKey *asymmetric.PublicKey `yaml:"PublicKey"`
119119
Nonce mine.Uint256 `yaml:"Nonce"`
120120
}

sqlchain/chain.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ const (
5353
mwMinerChainBlockHeight = "head:height"
5454
mwMinerChainBlockHash = "head:hash"
5555
mwMinerChainBlockTimestamp = "head:timestamp"
56-
mwMinerChainRequestsFreq = "requests:freq"
5756
mwMinerChainRequestsCount = "requests:count"
5857
)
5958

@@ -221,7 +220,6 @@ func NewChainWithContext(ctx context.Context, c *Config) (chain *Chain, err erro
221220
chain.expVars.Set(mwMinerChainBlockHeight, new(expvar.Int))
222221
chain.expVars.Set(mwMinerChainBlockHash, new(expvar.String))
223222
chain.expVars.Set(mwMinerChainBlockTimestamp, new(expvar.String))
224-
chain.expVars.Set(mwMinerChainRequestsFreq, mw.NewGauge("5m1m"))
225223
chain.expVars.Set(mwMinerChainRequestsCount, mw.NewCounter("5m1m"))
226224

227225
chainVars.Set(string(c.DatabaseID), chain.expVars)
@@ -966,7 +964,6 @@ func (c *Chain) Query(
966964
// cancelling will be propagated to this context before chain instance stops.
967965
// update metrics
968966
c.expVars.Get(mwMinerChainRequestsCount).(mw.Metric).Add(1)
969-
c.expVars.Get(mwMinerChainRequestsFreq).(mw.Metric).Add(1)
970967

971968
return c.st.QueryWithContext(req.GetContext(), req, isLeader)
972969
}

worker/dbms.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ import (
2424
"os"
2525
"path/filepath"
2626
"sync"
27+
"sync/atomic"
2728
"time"
2829

2930
"github.com/pkg/errors"
31+
mw "github.com/zserge/metric"
3032

3133
"github.com/CovenantSQL/CovenantSQL/blockproducer/interfaces"
3234
"github.com/CovenantSQL/CovenantSQL/conf"
@@ -55,13 +57,18 @@ const (
5557
)
5658

5759
var (
58-
dbCount = expvar.NewInt(mwMinerDBCount)
60+
dbCount = mw.NewGauge("5m1m")
5961
)
6062

63+
func init() {
64+
expvar.Publish(mwMinerDBCount, dbCount)
65+
}
66+
6167
// DBMS defines a database management instance.
6268
type DBMS struct {
6369
cfg *DBMSConfig
6470
dbMap sync.Map
71+
dbCount int64
6572
kayakMux *DBKayakMuxService
6673
chainMux *sqlchain.MuxService
6774
rpc *DBMSRPCService
@@ -471,7 +478,7 @@ func (dbms *DBMS) Create(instance *types.ServiceInstance, cleanup bool) (err err
471478
err = dbms.addMeta(instance.DatabaseID, db)
472479

473480
// update metrics
474-
dbCount.Add(1)
481+
dbCount.Add(float64(atomic.AddInt64(&dbms.dbCount, 1)))
475482

476483
return
477484
}
@@ -490,7 +497,8 @@ func (dbms *DBMS) Drop(dbID proto.DatabaseID) (err error) {
490497
return
491498
}
492499

493-
dbCount.Add(-1)
500+
// update metrics
501+
dbCount.Add(float64(atomic.AddInt64(&dbms.dbCount, -1)))
494502

495503
// remove meta
496504
return dbms.removeMeta(dbID)

0 commit comments

Comments
 (0)