Add backwards compatibility fields in ceph usage and pool stats (#5466)
This commit is contained in:
@@ -157,7 +157,6 @@ func init() {
|
||||
}
|
||||
|
||||
inputs.Add(measurement, func() telegraf.Input { return &c })
|
||||
|
||||
}
|
||||
|
||||
var perfDump = func(binary string, socket *socket) (string, error) {
|
||||
@@ -336,17 +335,17 @@ type CephStatus struct {
|
||||
StateName string `json:"state_name"`
|
||||
Count float64 `json:"count"`
|
||||
} `json:"pgs_by_state"`
|
||||
Version float64 `json:"version"`
|
||||
NumPGs float64 `json:"num_pgs"`
|
||||
DataBytes float64 `json:"data_bytes"`
|
||||
BytesUsed float64 `json:"bytes_used"`
|
||||
BytesAvail float64 `json:"bytes_avail"`
|
||||
BytesTotal float64 `json:"bytes_total"`
|
||||
ReadBytesSec float64 `json:"read_bytes_sec"`
|
||||
WriteBytesSec float64 `json:"write_bytes_sec"`
|
||||
OpPerSec float64 `json:"op_per_sec"` // This field is no longer reported in ceph 10 and later
|
||||
ReadOpPerSec float64 `json:"read_op_per_sec"`
|
||||
WriteOpPerSec float64 `json:"write_op_per_sec"`
|
||||
Version float64 `json:"version"`
|
||||
NumPGs float64 `json:"num_pgs"`
|
||||
DataBytes float64 `json:"data_bytes"`
|
||||
BytesUsed float64 `json:"bytes_used"`
|
||||
BytesAvail float64 `json:"bytes_avail"`
|
||||
BytesTotal float64 `json:"bytes_total"`
|
||||
ReadBytesSec float64 `json:"read_bytes_sec"`
|
||||
WriteBytesSec float64 `json:"write_bytes_sec"`
|
||||
OpPerSec *float64 `json:"op_per_sec"` // This field is no longer reported in ceph 10 and later
|
||||
ReadOpPerSec float64 `json:"read_op_per_sec"`
|
||||
WriteOpPerSec float64 `json:"write_op_per_sec"`
|
||||
} `json:"pgmap"`
|
||||
}
|
||||
|
||||
@@ -423,16 +422,21 @@ func decodeStatusPgmapState(acc telegraf.Accumulator, data *CephStatus) error {
|
||||
// CephDF is used to unmarshal 'ceph df' output
|
||||
type CephDf struct {
|
||||
Stats struct {
|
||||
TotalSpace float64 `json:"total_space"`
|
||||
TotalUsed float64 `json:"total_used"`
|
||||
TotalAvail float64 `json:"total_avail"`
|
||||
TotalSpace *float64 `json:"total_space"` // pre ceph 0.84
|
||||
TotalUsed *float64 `json:"total_used"` // pre ceph 0.84
|
||||
TotalAvail *float64 `json:"total_avail"` // pre ceph 0.84
|
||||
TotalBytes *float64 `json:"total_bytes"`
|
||||
TotalUsedBytes *float64 `json:"total_used_bytes"`
|
||||
TotalAvailBytes *float64 `json:"total_avail_bytes"`
|
||||
} `json:"stats"`
|
||||
Pools []struct {
|
||||
Name string `json:"name"`
|
||||
Stats struct {
|
||||
KBUsed float64 `json:"kb_used"`
|
||||
BytesUsed float64 `json:"bytes_used"`
|
||||
Objects float64 `json:"objects"`
|
||||
KBUsed float64 `json:"kb_used"`
|
||||
BytesUsed float64 `json:"bytes_used"`
|
||||
Objects float64 `json:"objects"`
|
||||
PercentUsed *float64 `json:"percent_used"`
|
||||
MaxAvail *float64 `json:"max_avail"`
|
||||
} `json:"stats"`
|
||||
} `json:"pools"`
|
||||
}
|
||||
@@ -446,9 +450,12 @@ func decodeDf(acc telegraf.Accumulator, input string) error {
|
||||
|
||||
// ceph.usage: records global utilization and number of objects
|
||||
fields := map[string]interface{}{
|
||||
"total_space": data.Stats.TotalSpace,
|
||||
"total_used": data.Stats.TotalUsed,
|
||||
"total_avail": data.Stats.TotalAvail,
|
||||
"total_space": data.Stats.TotalSpace,
|
||||
"total_used": data.Stats.TotalUsed,
|
||||
"total_avail": data.Stats.TotalAvail,
|
||||
"total_bytes": data.Stats.TotalBytes,
|
||||
"total_used_bytes": data.Stats.TotalUsedBytes,
|
||||
"total_avail_bytes": data.Stats.TotalAvailBytes,
|
||||
}
|
||||
acc.AddFields("ceph_usage", fields, map[string]string{})
|
||||
|
||||
@@ -458,9 +465,11 @@ func decodeDf(acc telegraf.Accumulator, input string) error {
|
||||
"name": pool.Name,
|
||||
}
|
||||
fields := map[string]interface{}{
|
||||
"kb_used": pool.Stats.KBUsed,
|
||||
"bytes_used": pool.Stats.BytesUsed,
|
||||
"objects": pool.Stats.Objects,
|
||||
"kb_used": pool.Stats.KBUsed,
|
||||
"bytes_used": pool.Stats.BytesUsed,
|
||||
"objects": pool.Stats.Objects,
|
||||
"percent_used": pool.Stats.PercentUsed,
|
||||
"max_avail": pool.Stats.MaxAvail,
|
||||
}
|
||||
acc.AddFields("ceph_pool_usage", fields, tags)
|
||||
}
|
||||
@@ -472,11 +481,11 @@ func decodeDf(acc telegraf.Accumulator, input string) error {
|
||||
type CephOSDPoolStats []struct {
|
||||
PoolName string `json:"pool_name"`
|
||||
ClientIORate struct {
|
||||
ReadBytesSec float64 `json:"read_bytes_sec"`
|
||||
WriteBytesSec float64 `json:"write_bytes_sec"`
|
||||
OpPerSec float64 `json:"op_per_sec"` // This field is no longer reported in ceph 10 and later
|
||||
ReadOpPerSec float64 `json:"read_op_per_sec"`
|
||||
WriteOpPerSec float64 `json:"write_op_per_sec"`
|
||||
ReadBytesSec float64 `json:"read_bytes_sec"`
|
||||
WriteBytesSec float64 `json:"write_bytes_sec"`
|
||||
OpPerSec *float64 `json:"op_per_sec"` // This field is no longer reported in ceph 10 and later
|
||||
ReadOpPerSec float64 `json:"read_op_per_sec"`
|
||||
WriteOpPerSec float64 `json:"write_op_per_sec"`
|
||||
} `json:"client_io_rate"`
|
||||
RecoveryRate struct {
|
||||
RecoveringObjectsPerSec float64 `json:"recovering_objects_per_sec"`
|
||||
|
||||
Reference in New Issue
Block a user