Commit 4e05c863 authored by Vladimir Barsukov's avatar Vladimir Barsukov
Browse files

add stats

parent b28e9805
......@@ -18,6 +18,7 @@ const (
ConnModeMaster connMode = iota
ConnModeSync
ConnModeAsync
connModePool
)
func (c connMode) String() string {
......@@ -28,6 +29,8 @@ func (c connMode) String() string {
return "sync"
case ConnModeAsync:
return "async"
case connModePool:
return "pool"
default:
return "unknown"
}
......
......@@ -28,23 +28,61 @@ func (d *Pool) StatMaster() *Stat {
return d.stat(d.srvMaster)
}
func (d *Pool) StatPool() []*Stat {
out := make([]*Stat, 0)
for _, q := range append(d.srvSlaves, d.srvSlavesAsync...) {
out = append(out, d.stat(q))
}
return out
}
func (d *Pool) StatPoolTotal() *Stat {
m := d.StatMaster()
for _, q := range append(d.srvSlaves, d.srvSlavesAsync...) {
s := q.Stat()
m.AcquireCount += s.AcquireCount()
m.AcquireDuration += s.AcquireDuration()
m.AcquiredConns += s.AcquiredConns()
m.CanceledAcquireCount += s.CanceledAcquireCount()
m.ConstructingConns += s.ConstructingConns()
m.EmptyAcquireCount += s.EmptyAcquireCount()
m.IdleConns += s.IdleConns()
m.MaxConns += s.MaxConns()
m.TotalConns += s.TotalConns()
m.NewConnsCount += s.NewConnsCount()
m.MaxLifetimeDestroyCount += s.MaxLifetimeDestroyCount()
m.MaxIdleDestroyCount += s.MaxIdleDestroyCount()
}
m.Id = "pool"
m.Mode = connModePool
m.Host = ""
m.Port = 0
return d.stat(d.srvMaster)
}
func (d *Pool) stat(q *conn) *Stat {
s := q.Stat()
return &Stat{
Id: q.ToString(),
Mode: q.Mode,
Host: q.Config().ConnConfig.Host,
Port: q.Config().ConnConfig.Port,
AcquireCount: q.Stat().AcquireCount(),
AcquireDuration: q.Stat().AcquireDuration(),
AcquiredConns: q.Stat().AcquiredConns(),
CanceledAcquireCount: q.Stat().CanceledAcquireCount(),
ConstructingConns: q.Stat().ConstructingConns(),
EmptyAcquireCount: q.Stat().EmptyAcquireCount(),
IdleConns: q.Stat().IdleConns(),
MaxConns: q.Stat().MaxConns(),
TotalConns: q.Stat().TotalConns(),
NewConnsCount: q.Stat().NewConnsCount(),
MaxLifetimeDestroyCount: q.Stat().MaxLifetimeDestroyCount(),
MaxIdleDestroyCount: q.Stat().MaxIdleDestroyCount(),
AcquireCount: s.AcquireCount(),
AcquireDuration: s.AcquireDuration(),
AcquiredConns: s.AcquiredConns(),
CanceledAcquireCount: s.CanceledAcquireCount(),
ConstructingConns: s.ConstructingConns(),
EmptyAcquireCount: s.EmptyAcquireCount(),
IdleConns: s.IdleConns(),
MaxConns: s.MaxConns(),
TotalConns: s.TotalConns(),
NewConnsCount: s.NewConnsCount(),
MaxLifetimeDestroyCount: s.MaxLifetimeDestroyCount(),
MaxIdleDestroyCount: s.MaxIdleDestroyCount(),
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment