Skip to content

Commit d6783b4

Browse files
committed
wip
1 parent 409bfb8 commit d6783b4

File tree

3 files changed

+63
-7
lines changed

3 files changed

+63
-7
lines changed

coordinator/internal/controller/proxy/controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func InitController(cfg *config.ProxyConfig, db *gorm.DB, reg prometheus.Registe
3535
clients[cli.Name()] = cli
3636
}
3737

38-
proverManager := NewProverManagerWithPersistent(100, db)
38+
proverManager := NewProverManagerWithPersistent(100, db, reg)
3939
priorityManager := NewPriorityUpstreamManagerPersistent(db)
4040

4141
Auth = NewAuthController(cfg, clients, proverManager)

coordinator/internal/controller/proxy/prover_session.go

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"gorm.io/gorm"
1010

11+
"github.com/prometheus/client_golang/prometheus"
1112
"github.com/scroll-tech/go-ethereum/log"
1213

1314
ctypes "scroll-tech/common/types"
@@ -21,23 +22,78 @@ type ProverManager struct {
2122
willDeprecatedData map[string]*proverSession
2223
sizeLimit int
2324
persistent *proverDataPersist
25+
26+
clientLoginTries *prometheus.CounterVec
27+
getTaskTries *prometheus.CounterVec
28+
submitTaskTries *prometheus.CounterVec
29+
30+
upstreamFail *prometheus.GaugeVec
31+
clientLoginFail *prometheus.CounterVec
32+
getTaskFail *prometheus.CounterVec
33+
submitTaskFail *prometheus.CounterVec
2434
}
2535

26-
func NewProverManager(size int) *ProverManager {
27-
return &ProverManager{
36+
func NewProverManager(size int, reg prometheus.Registerer) *ProverManager {
37+
m := &ProverManager{
2838
data: make(map[string]*proverSession),
2939
willDeprecatedData: make(map[string]*proverSession),
3040
sizeLimit: size,
3141
}
42+
m.registerCounters(reg)
43+
return m
3244
}
3345

34-
func NewProverManagerWithPersistent(size int, db *gorm.DB) *ProverManager {
35-
return &ProverManager{
46+
func NewProverManagerWithPersistent(size int, db *gorm.DB, reg prometheus.Registerer) *ProverManager {
47+
m := &ProverManager{
3648
data: make(map[string]*proverSession),
3749
willDeprecatedData: make(map[string]*proverSession),
3850
sizeLimit: size,
3951
persistent: NewProverDataPersist(db),
4052
}
53+
m.registerCounters(reg)
54+
return m
55+
}
56+
57+
func (m *ProverManager) registerCounters(reg prometheus.Registerer) {
58+
m.upstreamFail = prometheus.NewGaugeVec(prometheus.GaugeOpts{
59+
Name: "upstream_error",
60+
Help: "Set to 1 while a upstream session can not be obtained",
61+
}, []string{"upstream"})
62+
63+
m.clientLoginFail = prometheus.NewCounterVec(prometheus.CounterOpts{
64+
Name: "login_failure",
65+
Help: "Client login has encountered an error",
66+
}, []string{"upstream"})
67+
68+
m.getTaskFail = prometheus.NewCounterVec(prometheus.CounterOpts{
69+
Name: "getTask_failure",
70+
Help: "GetTask request has encountered an error",
71+
}, []string{"upstream"})
72+
73+
m.submitTaskFail = prometheus.NewCounterVec(prometheus.CounterOpts{
74+
Name: "submitTask_failure",
75+
Help: "SubmitTask request has encountered an error",
76+
}, []string{"upstream"})
77+
78+
m.clientLoginTries = prometheus.NewCounterVec(prometheus.CounterOpts{
79+
Name: "prover_speed",
80+
Help: "Cycle against running time of prover (in mhz)",
81+
}, []string{"upstream"})
82+
83+
m.getTaskTries = prometheus.NewCounterVec(prometheus.CounterOpts{
84+
Name: "prover_speed",
85+
Help: "Cycle against running time of prover (in mhz)",
86+
}, []string{"upstream"})
87+
88+
m.submitTaskTries = prometheus.NewCounterVec(prometheus.CounterOpts{
89+
Name: "prover_speed",
90+
Help: "Cycle against running time of prover (in mhz)",
91+
}, []string{"upstream"})
92+
93+
if reg != nil {
94+
reg.MustRegister(m.upstreamFail)
95+
reg.MustRegister(m.clientLoginFail)
96+
}
4197
}
4298

4399
// get retrieves ProverSession for a given user key, returns empty if still not exists

coordinator/internal/controller/proxy/prover_session_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
// TestProverManagerGetAndCreate validates basic creation and retrieval semantics.
88
func TestProverManagerGetAndCreate(t *testing.T) {
9-
pm := NewProverManager(2)
9+
pm := NewProverManager(2, nil)
1010

1111
if got := pm.Get("user1"); got != nil {
1212
t.Fatalf("expected nil for non-existent key, got: %+v", got)
@@ -26,7 +26,7 @@ func TestProverManagerGetAndCreate(t *testing.T) {
2626
// TestProverManagerRolloverAndPromotion verifies rollover when sizeLimit is reached
2727
// and that old entries are accessible and promoted back to active data map.
2828
func TestProverManagerRolloverAndPromotion(t *testing.T) {
29-
pm := NewProverManager(2)
29+
pm := NewProverManager(2, nil)
3030

3131
s1 := pm.GetOrCreate("u1")
3232
s2 := pm.GetOrCreate("u2")

0 commit comments

Comments
 (0)