Log apps metrics.
This commit is contained in:
parent
d3e58b3422
commit
290fdeb283
|
@ -20,7 +20,7 @@ type StatsServer struct {
|
|||
|
||||
type Worker struct {
|
||||
// Tags
|
||||
Id int `json:"id"`
|
||||
WorkerId int `json:"id"`
|
||||
Pid int `json:"pid"`
|
||||
|
||||
// Fields
|
||||
|
@ -38,4 +38,19 @@ type Worker struct {
|
|||
RespawnCount int `json:"respawn_count"`
|
||||
Tx int `json:"tx"`
|
||||
AvgRt int `json:"avg_rt"`
|
||||
|
||||
Apps []*App `json:"apps"`
|
||||
}
|
||||
|
||||
type App struct {
|
||||
// Tags
|
||||
AppId int `json:"id"`
|
||||
MountPoint string `json:"mountpoint"`
|
||||
Chdir string `json:"chdir"`
|
||||
|
||||
// Fields
|
||||
Modifier1 int `json:"modifier1"`
|
||||
Requests int `json:"requests"`
|
||||
StartupTime int `json:"startup_time"`
|
||||
Exceptions int `json:"exceptions"`
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@ func (u *Uwsgi) gatherURL(acc telegraf.Accumulator, url string) error {
|
|||
|
||||
u.gatherStatServer(acc, &s)
|
||||
u.gatherWorkers(acc, &s)
|
||||
u.gatherApps(acc, &s)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -109,7 +110,7 @@ func (u *Uwsgi) gatherWorkers(acc telegraf.Accumulator, s *StatsServer) error {
|
|||
"avg_rt": w.AvgRt,
|
||||
}
|
||||
tags := map[string]string{
|
||||
"id": strconv.Itoa(w.Id),
|
||||
"worker_id": strconv.Itoa(w.WorkerId),
|
||||
"url": s.Url,
|
||||
"pid": strconv.Itoa(w.Pid),
|
||||
}
|
||||
|
@ -120,6 +121,28 @@ func (u *Uwsgi) gatherWorkers(acc telegraf.Accumulator, s *StatsServer) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (u *Uwsgi) gatherApps(acc telegraf.Accumulator, s *StatsServer) error {
|
||||
for _, w := range s.Workers {
|
||||
for _, a := range w.Apps {
|
||||
fields := map[string]interface{}{
|
||||
"modifier1": a.Modifier1,
|
||||
"requests": a.Requests,
|
||||
"startup_time": a.StartupTime,
|
||||
"exceptions": a.Exceptions,
|
||||
}
|
||||
tags := map[string]string{
|
||||
"app_id": strconv.Itoa(a.AppId),
|
||||
"worker_id": strconv.Itoa(w.WorkerId),
|
||||
"mountpoint": a.MountPoint,
|
||||
"chdir": a.Chdir,
|
||||
}
|
||||
acc.AddFields("uwsgi_apps", fields, tags)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
inputs.Add("uwsgi", func() telegraf.Input { return &Uwsgi{} })
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue