Implement os stats.
This commit is contained in:
parent
c6a9335bf2
commit
9cd1344740
|
@ -16,6 +16,7 @@ type node struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Attributes map[string]string `json:"attributes"`
|
Attributes map[string]string `json:"attributes"`
|
||||||
Indices interface{} `json:"indices"`
|
Indices interface{} `json:"indices"`
|
||||||
|
Os interface{} `json:"os"`
|
||||||
}
|
}
|
||||||
|
|
||||||
const sampleConfig = `
|
const sampleConfig = `
|
||||||
|
@ -99,6 +100,9 @@ func (e *Elasticsearch) gatherUrl(url string, acc plugins.Accumulator) error {
|
||||||
if err := e.parseInterface(acc, "indices", tags, n.Indices); err != nil {
|
if err := e.parseInterface(acc, "indices", tags, n.Indices); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := e.parseInterface(acc, "os", tags, n.Os); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -114,8 +118,8 @@ func (e *Elasticsearch) parseInterface(acc plugins.Accumulator, prefix string, t
|
||||||
}
|
}
|
||||||
case float64:
|
case float64:
|
||||||
acc.Add(prefix, t, tags)
|
acc.Add(prefix, t, tags)
|
||||||
case bool, string:
|
case bool, string, []interface{}:
|
||||||
// ignored bool and string
|
// ignored types
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("elasticsearch: got unexpected type %T with value %v (%s)", t, t, prefix)
|
return fmt.Errorf("elasticsearch: got unexpected type %T with value %v (%s)", t, t, prefix)
|
||||||
|
|
|
@ -54,4 +54,8 @@ func TestElasticsearch(t *testing.T) {
|
||||||
for key, val := range indicesExpected {
|
for key, val := range indicesExpected {
|
||||||
assert.NoError(t, acc.ValidateTaggedValue(key, val, tags))
|
assert.NoError(t, acc.ValidateTaggedValue(key, val, tags))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for key, val := range osExpected {
|
||||||
|
assert.NoError(t, acc.ValidateTaggedValue(key, val, tags))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,6 +126,34 @@ const statsResponse = `
|
||||||
"current_as_target": 0,
|
"current_as_target": 0,
|
||||||
"throttle_time_in_millis": 0
|
"throttle_time_in_millis": 0
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"os": {
|
||||||
|
"timestamp": 1436460392944,
|
||||||
|
"uptime_in_millis": 25092,
|
||||||
|
"load_average": [
|
||||||
|
0.01,
|
||||||
|
0.04,
|
||||||
|
0.05
|
||||||
|
],
|
||||||
|
"cpu": {
|
||||||
|
"sys": 0,
|
||||||
|
"user": 0,
|
||||||
|
"idle": 99,
|
||||||
|
"usage": 0,
|
||||||
|
"stolen": 0
|
||||||
|
},
|
||||||
|
"mem": {
|
||||||
|
"free_in_bytes": 477761536,
|
||||||
|
"used_in_bytes": 1621868544,
|
||||||
|
"free_percent": 74,
|
||||||
|
"used_percent": 25,
|
||||||
|
"actual_free_in_bytes": 1565470720,
|
||||||
|
"actual_used_in_bytes": 534159360
|
||||||
|
},
|
||||||
|
"swap": {
|
||||||
|
"used_in_bytes": 0,
|
||||||
|
"free_in_bytes": 487997440
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,3 +231,21 @@ var indicesExpected = map[string]float64{
|
||||||
"indices_segments_version_map_memory_in_bytes": 611844,
|
"indices_segments_version_map_memory_in_bytes": 611844,
|
||||||
"indices_segments_fixed_bit_set_memory_in_bytes": 0,
|
"indices_segments_fixed_bit_set_memory_in_bytes": 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var osExpected = map[string]float64{
|
||||||
|
"os_swap_used_in_bytes": 0,
|
||||||
|
"os_swap_free_in_bytes": 487997440,
|
||||||
|
"os_timestamp": 1436460392944,
|
||||||
|
"os_uptime_in_millis": 25092,
|
||||||
|
"os_cpu_sys": 0,
|
||||||
|
"os_cpu_user": 0,
|
||||||
|
"os_cpu_idle": 99,
|
||||||
|
"os_cpu_usage": 0,
|
||||||
|
"os_cpu_stolen": 0,
|
||||||
|
"os_mem_free_percent": 74,
|
||||||
|
"os_mem_used_percent": 25,
|
||||||
|
"os_mem_actual_free_in_bytes": 1565470720,
|
||||||
|
"os_mem_actual_used_in_bytes": 534159360,
|
||||||
|
"os_mem_free_in_bytes": 477761536,
|
||||||
|
"os_mem_used_in_bytes": 1621868544,
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue