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

add stats

parent b28e9805
...@@ -18,6 +18,7 @@ const ( ...@@ -18,6 +18,7 @@ const (
ConnModeMaster connMode = iota ConnModeMaster connMode = iota
ConnModeSync ConnModeSync
ConnModeAsync ConnModeAsync
connModePool
) )
func (c connMode) String() string { func (c connMode) String() string {
...@@ -28,6 +29,8 @@ func (c connMode) String() string { ...@@ -28,6 +29,8 @@ func (c connMode) String() string {
return "sync" return "sync"
case ConnModeAsync: case ConnModeAsync:
return "async" return "async"
case connModePool:
return "pool"
default: default:
return "unknown" return "unknown"
} }
......
...@@ -28,23 +28,61 @@ func (d *Pool) StatMaster() *Stat { ...@@ -28,23 +28,61 @@ func (d *Pool) StatMaster() *Stat {
return d.stat(d.srvMaster) 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 { func (d *Pool) stat(q *conn) *Stat {
s := q.Stat()
return &Stat{ return &Stat{
Id: q.ToString(), Id: q.ToString(),
Mode: q.Mode, Mode: q.Mode,
Host: q.Config().ConnConfig.Host, Host: q.Config().ConnConfig.Host,
Port: q.Config().ConnConfig.Port, Port: q.Config().ConnConfig.Port,
AcquireCount: q.Stat().AcquireCount(), AcquireCount: s.AcquireCount(),
AcquireDuration: q.Stat().AcquireDuration(), AcquireDuration: s.AcquireDuration(),
AcquiredConns: q.Stat().AcquiredConns(), AcquiredConns: s.AcquiredConns(),
CanceledAcquireCount: q.Stat().CanceledAcquireCount(), CanceledAcquireCount: s.CanceledAcquireCount(),
ConstructingConns: q.Stat().ConstructingConns(), ConstructingConns: s.ConstructingConns(),
EmptyAcquireCount: q.Stat().EmptyAcquireCount(), EmptyAcquireCount: s.EmptyAcquireCount(),
IdleConns: q.Stat().IdleConns(), IdleConns: s.IdleConns(),
MaxConns: q.Stat().MaxConns(), MaxConns: s.MaxConns(),
TotalConns: q.Stat().TotalConns(), TotalConns: s.TotalConns(),
NewConnsCount: q.Stat().NewConnsCount(), NewConnsCount: s.NewConnsCount(),
MaxLifetimeDestroyCount: q.Stat().MaxLifetimeDestroyCount(), MaxLifetimeDestroyCount: s.MaxLifetimeDestroyCount(),
MaxIdleDestroyCount: q.Stat().MaxIdleDestroyCount(), 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