0.3.0: procstat
This commit is contained in:
parent
f284c8c154
commit
0e55c371b7
|
@ -3,6 +3,8 @@
|
||||||
### Release Notes
|
### Release Notes
|
||||||
- **breaking change** the `io` plugin has been renamed `diskio`
|
- **breaking change** the `io` plugin has been renamed `diskio`
|
||||||
- **breaking change** Plugin measurements aggregated into a single measurement.
|
- **breaking change** Plugin measurements aggregated into a single measurement.
|
||||||
|
- `procstat` cpu measurements are now prepended with `cpu_time_` instead of
|
||||||
|
only `cpu_`
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
- Plugin measurements aggregated into a single measurement.
|
- Plugin measurements aggregated into a single measurement.
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
type SpecProcessor struct {
|
type SpecProcessor struct {
|
||||||
Prefix string
|
Prefix string
|
||||||
tags map[string]string
|
tags map[string]string
|
||||||
|
fields map[string]interface{}
|
||||||
acc plugins.Accumulator
|
acc plugins.Accumulator
|
||||||
proc *process.Process
|
proc *process.Process
|
||||||
}
|
}
|
||||||
|
@ -23,7 +24,12 @@ func (p *SpecProcessor) add(metric string, value interface{}) {
|
||||||
} else {
|
} else {
|
||||||
mname = p.Prefix + "_" + metric
|
mname = p.Prefix + "_" + metric
|
||||||
}
|
}
|
||||||
p.acc.Add(mname, value, p.tags)
|
p.fields[mname] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *SpecProcessor) flush() {
|
||||||
|
p.acc.AddFields("procstat", p.fields, p.tags)
|
||||||
|
p.fields = make(map[string]interface{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSpecProcessor(
|
func NewSpecProcessor(
|
||||||
|
@ -39,6 +45,7 @@ func NewSpecProcessor(
|
||||||
return &SpecProcessor{
|
return &SpecProcessor{
|
||||||
Prefix: prefix,
|
Prefix: prefix,
|
||||||
tags: tags,
|
tags: tags,
|
||||||
|
fields: make(map[string]interface{}),
|
||||||
acc: acc,
|
acc: acc,
|
||||||
proc: p,
|
proc: p,
|
||||||
}
|
}
|
||||||
|
@ -60,6 +67,7 @@ func (p *SpecProcessor) pushMetrics() {
|
||||||
if err := p.pushMemoryStats(); err != nil {
|
if err := p.pushMemoryStats(); err != nil {
|
||||||
log.Printf("procstat, mem stats not available: %s", err.Error())
|
log.Printf("procstat, mem stats not available: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
p.flush()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *SpecProcessor) pushFDStats() error {
|
func (p *SpecProcessor) pushFDStats() error {
|
||||||
|
@ -94,21 +102,22 @@ func (p *SpecProcessor) pushIOStats() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *SpecProcessor) pushCPUStats() error {
|
func (p *SpecProcessor) pushCPUStats() error {
|
||||||
cpu, err := p.proc.CPUTimes()
|
cpu_time, err := p.proc.CPUTimes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
p.add("cpu_user", cpu.User)
|
p.add("cpu_time_user", cpu_time.User)
|
||||||
p.add("cpu_system", cpu.System)
|
p.add("cpu_time_system", cpu_time.System)
|
||||||
p.add("cpu_idle", cpu.Idle)
|
p.add("cpu_time_idle", cpu_time.Idle)
|
||||||
p.add("cpu_nice", cpu.Nice)
|
p.add("cpu_time_nice", cpu_time.Nice)
|
||||||
p.add("cpu_iowait", cpu.Iowait)
|
p.add("cpu_time_iowait", cpu_time.Iowait)
|
||||||
p.add("cpu_irq", cpu.Irq)
|
p.add("cpu_time_irq", cpu_time.Irq)
|
||||||
p.add("cpu_soft_irq", cpu.Softirq)
|
p.add("cpu_time_soft_irq", cpu_time.Softirq)
|
||||||
p.add("cpu_soft_steal", cpu.Steal)
|
p.add("cpu_time_soft_steal", cpu_time.Steal)
|
||||||
p.add("cpu_soft_stolen", cpu.Stolen)
|
p.add("cpu_time_soft_stolen", cpu_time.Stolen)
|
||||||
p.add("cpu_soft_guest", cpu.Guest)
|
p.add("cpu_time_soft_guest", cpu_time.Guest)
|
||||||
p.add("cpu_soft_guest_nice", cpu.GuestNice)
|
p.add("cpu_time_soft_guest_nice", cpu_time.GuestNice)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue